In network processor-based Internet Protocol (IP) routers, queuing functionality of traffic management is usually carried out per destination interface. When source-based queuing is required in the router, such as when the router is used at the customer edge and ports are connected to the access side, known solutions define flows per source interface and per destination route in order to associate the queues with the source interface. A flow is a stream of data with the same traffic management characteristics such as a destination IP route (e.g.: 2.2.2.2/24, representing a group of IP addresses having the first 24 bits in common) or a specific destination IP address (e.g.: 1.1.1.1) or destination MAC address in VPLS (Virtual Private LAN Service, RFC2547) or MPLS label in the LSR (Label Switch Router, RFC3032).
Another known alternative is to have routing data path lookups performed after source based queuing. Both approaches require flows per sources and per destination. Performing queuing functionality per source typically requires significant resources as flows per source need to be created for each destination, resulting in a large context table in memory and therefore consuming large amounts of memory which can be expensive, either in terms of the cost of the memory or reduced performance as memory resources are exhausted in use.
Figure one illustrates any prior art source base queuing implementation
With reference to figure one ports 101, 103 can be configured with one or more ingress interfaces 105, 107, 109. IP packets from each ingress interface are directed to separate flows. For example IP packets 111, 113, 115 from ingress interfaces 105, 107, 109 respectively are directed to flows 117, 119, 121. For source based queuing, IP packets 123, 125, 127, 129 originating from ingress interface 105 are forwarded to queue set 131. Queues 133, 135, 137 within queue set 131 are each configured to handle traffic with different priorities. The queues are processed according to the down stream bandwidth through the switching fabric 139.
Therefore, a means of minimizing memory usage while maintaining routing and queuing performance remains highly desirable.